package training.controller.kadai.newAccount;

//import java.util.List;

import org.slim3.controller.Controller;
import org.slim3.controller.Navigation;
import org.slim3.controller.validator.Validators;
import org.slim3.util.RequestMap;

//import training.model.UserAccount;
import training.service.AccountService;

public class RegistCheckController extends Controller {
    private AccountService service = new AccountService();
    @Override
    public Navigation run() throws Exception {
        //未入力チェック
        if(!validate()) {
            return forward(basePath);
    }
        //パスワード確認チェック
        if (!PassCheck(asString("passWord"),asString("passWord2"))){
            Validators v = new Validators(request);
            v.getErrors().put("passWord", "パスワードが一致していません");
            return forward(basePath);
        }
        /*//ユーザーID重複チェック
        List<UserAccount> AccountList = service.getUserAccountList();
        if(!service.duplicateCheck(AccountList,asString("userId"))){
            Validators v = new Validators(request);
            v.getErrors().put("userId", "このユーザーIDはすでに登録されています");
            return forward(basePath);
        }*/
        //ユーザーID重複チェック
        if(!service.duplicateCheck2(asString("userId"))){
            Validators v = new Validators(request);
            v.getErrors().put("userId", "このユーザーIDはすでに登録されています");
            return forward(basePath);
        }


        //アカウント登録
        service.regist(new RequestMap(request));
        return redirect("/kadai/registComplete/");
}
    //未入力チェック
    protected boolean validate() {
        Validators v = new Validators(request);
        v.add("userId", v.required("ユーザーIDが入力されていません"));
        v.add("passWord", v.required("パスワードが入力されていません"));
        return v.validate();
    }
    //パスワードチェック
    public boolean PassCheck(String passWord,String passWord2) {
        if(passWord.equals(passWord2)){
        return true;
        }else{
            return false;
        }
    }
}
